import api from "../api/api.js";
export default {
  // 启动程序，自动调用此方法
  onLaunch() {
    let self = this;
    // plugin.init(api.isDebugMode(), {
    //   getShareObj(param) {
    //     return self.getShareObj(param);
    //   },
    //   // getCurrentPages() {
    //   //   return self.getCurrentPages();
    //   // }
    // });
  },

  // 调用api.clearAccountCache时，自动调用此方法
  clearAccountCache() {},

  linkCode: 0, // 邀请者的code
  shareTicket: null, // 从群分享进入
  fromWxCycle: false, // 从朋友圈进入
  hasPluginAccount: false, // mall插件是否设置了账号
  wineOrgData: null, // 商家信息
  stepDelay: null,






  // 唤起订阅弹窗： group 1用户订位通知 2用户订单通知 3酒家通知（订单、订位）
  pushSubscribe(group, callback) {
    api.request.getSubscribeTemplate(true, group).then(data => {
      if (data.length > 0) {
        let array = [];
        let map = new Map();
        for (let i = 0; i < data.length; i++) {
          let item = data[i];
          array.push(item.template); // 微信templateId
          map.set(item.template, item.templateId);
        }
        wx.requestSubscribeMessage({
          tmplIds: array,
          success(res) {
            let dest = [];
            for (let i = 0; i < array.length; i++) {
              let item = array[i];
              if (res[item] == "accept") {
                dest.push(map.get(item));
              }
            }
            if (dest.length > 0) {
              api.request.setSubscribe(true, dest).then(data => {
                if (callback) {
                  callback(true, "订阅消息发送成功");
                }
              }).catch(err => {
                if (callback) {
                  callback(false, err);
                }
              })
            } else {
              if (callback) {
                callback(false, "订阅消息授权失败");
              }
            }
          },
          fail: err => {
            api.log('subscribe:', err);
          }
        })
      }
    }).catch(reason => {
      callback(false, reason);
    });
  },


  /**
   * 获取分享朋友圈的对象
   * @param {String} param.param 目标页面的传参
   * @param {String} param.content 分享的文字
   * @param {String} param.imageUrl 分享的图片
   */
  getCycleObj(param) {
    if (!param) {
      param = {};
    }
    let query = "linkCode=" + api.getAccountCodeSync();
    if (param.param) {
      for (let key in param.param) {
        let value = param.param[key];
        if (value && typeof (value) == "object") {
          try {
            value = JSON.stringify(value);
          } catch (e) {}
        }
        query += "&" + key + "=" + value;
      }
    }
    let data = {
      title: param.content ? param.content : "欢乐饭桌游戏，让聚餐更精彩",
      query: query
    };
    if (param.imageUrl) {
      data.imageUrl = param.imageUrl;
    } else {
      data.imageUrl = api.demand.getResUrl("/group/wine/bg_share_wine.png");
    }
    return data;
  },

  /**
   * 获取分享的对象
   * @param {String} param.homePath 根页面，不传默认首页
   * @param {String} param.path 目标页面
   * @param {String} param.param 目标页面的传参
   * @param {String} param.content 分享的文字
   * @param {String} param.imageUrl 分享的图片
   */
  getShareObj(param) {
    if (!param) {
      param = {};
    }
    let realPath = param.homePath ? "/" + param.homePath + "?" : "/pages/home/home?";
    if (param.path) {
      realPath += "page=" + param.path + "&";
    }
    realPath += "linkCode=" + api.getAccountCodeSync();
    if (param.param) {
      for (let key in param.param) {
        let value = param.param[key];
        if (value && typeof (value) == "object") {
          try {
            value = JSON.stringify(value);
          } catch (e) {}
        }
        realPath += "&" + key + "=" + value;
      }
    }
    let data = {
      title: param.content ? param.content : "点击加入小鸟健身吧！",
      path: realPath
    };
    if (param.imageUrl) {
      data.imageUrl = param.imageUrl;
    } else {
      data.imageUrl = api.demand.getResUrl("/group/wine/bg_share_wine.png");
    }
    return data;
  }
}